from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base
from sqlalchemy.pool import QueuePool
# MySQL连接配置
MYSQL_USER = "root"          # 你的数据库用户名
MYSQL_PASSWORD = "SZtu%40303059"    #数据库密码
MYSQL_HOST = "localhost"     # 数据库地址
MYSQL_PORT = 3306            # 默认端口
MYSQL_DB = "ecg_platform"    # 数据库名（可自定义）

SQLALCHEMY_DATABASE_URL = (
    f"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DB}?charset=utf8mb4"
)

# ========== 优化点5: 针对高并发的连接池优化 ==========
engine = create_engine(
    SQLALCHEMY_DATABASE_URL,
    poolclass=QueuePool,
    pool_size=80,           # 提高到80（8 workers * 10 connections per worker）
    max_overflow=120,       # 提高到120（高峰期额外连接）
    pool_timeout=8,         # 降低到8秒（快速失败）
    pool_recycle=1800,      # 连接回收时间：30分钟（避免 MySQL 8小时超时）
    pool_pre_ping=True,     # 启用连接健康检查
    echo=False,
    # ========== 新增优化参数 ==========
    connect_args={
        'connect_timeout': 3,  # 降低MySQL连接超时到3秒
        'charset': 'utf8mb4',
    },
    execution_options={
        "isolation_level": "READ COMMITTED"  # 隔离级别优化
    }
)

SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()